package com.wanyangproject.androidlearning.designMode.factory;

public class FactoryTest {


    /*
    * 对象由工厂生成
    * 依据业务逻辑的复杂度可以分为简单工厂模式，工厂模式和抽象工厂模式
    * 简单工厂模式是一个工厂只生产同一类型的产品，因此只需对产品进行抽象处理即可。
    * 工厂模式则可能有多个工厂生产同一类型的产品，因此还会对不同的工厂进行一次抽象处理。
    * 抽象工厂模式则是有多个工厂生产多种不同类型的产品，因此会对不同的工厂和不同类型的产品进行抽象处理
    *
    * */


    public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {

        SimpleFactory.Product productA = SimpleFactory.creatProduct(SimpleProductA.class);
        productA.create();
        SimpleFactory.Product productB = SimpleFactory.creatProduct(SimpleProductB.class);
        productB.create();

        Factory factory = ConcreatFactory.creatFactory(FactoryA.class);
        factory.newProduct().create();
        Factory factory2 = ConcreatFactory.creatFactory(FactoryB.class);
        factory2.newProduct().create();


//        AbstractFactory abstractFactory = MyAbstractFactory.

    }


}
